@echo off
chcp 65001

rem 检查 ffmpeg 是否可用
where ffmpeg >nul 2>&1
if %errorlevel% neq 0 (
    echo ffmpeg 未找到，请确保已安装并添加到系统环境变量。
    pause
    exit /b 1
)

:menu
cls
echo.
echo 图片格式转换工具
echo ===============
echo 1. 转换为 WebP 格式
echo 2. 转换为 JPG 格式
echo 3. 转换为 PNG 格式
echo ===============
echo 0. 退出
echo.
set /p choice=请选择一个选项:

if "%choice%"=="1" goto webp
if "%choice%"=="2" goto jpg
if "%choice%"=="3" goto png
if "%choice%"=="0" exit
goto menu

:webp
echo.
echo 开始转换为 WebP 格式...
for %%a in (*.png *.bmp *.tga *.jpeg *.jpg *.webp *.avif *.tiff *.gif *.psd *.raw) do (
    echo 正在转换文件: %%a
    ffmpeg -i "%%a" -c:v libwebp -lossless 0 -q:v 80 -y "%%~na.webp"
    if %errorlevel% neq 0 (
        echo 转换文件 %%a 时出错。
    ) else (
        echo 文件 %%a 转换成功。
    )
)
echo.
echo 所有文件转换完成。
rem pause
goto menu

:jpg
echo.
echo 开始转换为 JPG 格式...
for %%a in (*.png *.bmp *.tga *.jpeg *.webp *.avif *.tiff *.gif *.psd *.raw) do (
    echo 正在转换文件: %%a
    ffmpeg -i "%%a" -c:v mjpeg -q:v 2 -y "%%~na.jpg"
    if %errorlevel% neq 0 (
        echo 转换文件 %%a 时出错。
    ) else (
        echo 文件 %%a 转换成功。
    )
)
echo.
echo 所有文件转换完成。
rem pause
goto menu

:png
echo.
echo 开始转换为 PNG 格式...
for %%a in (*.jpg *.bmp *.tga *.jpeg *.webp *.avif *.tiff *.gif *.psd *.raw) do (
    echo 正在转换文件: %%a
    ffmpeg -i "%%a" -c:v png -y "%%~na.png"
    if %errorlevel% neq 0 (
        echo 转换文件 %%a 时出错。
    ) else (
        echo 文件 %%a 转换成功。
    )
)
echo.
echo 所有文件转换完成。
rem pause
goto menu